From 883e8328e0ef45768126d3b52dc14b2a95f8ce4d Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Tue, 8 Feb 2022 10:51:38 +0100 Subject: [PATCH] entry completion: add checks that entry is set already If any of the APIs that assumes that the entry is set already is used before having one already set, things break pretty badly. Fixes a downstream issue reported at https://github.com/gtk-rs/gtk4-rs/issues/873 --- gtk/gtkentrycompletion.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index 408047adf0..ef4985af72 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -1211,6 +1211,8 @@ gtk_entry_completion_match_selected (GtkEntryCompletion *completion, GtkTreeModel *model, GtkTreeIter *iter) { + g_assert (completion->entry != NULL); + char *str = NULL; gtk_tree_model_get (model, iter, completion->text_column, &str, -1); @@ -1229,6 +1231,8 @@ gtk_entry_completion_cursor_on_match (GtkEntryCompletion *completion, GtkTreeModel *model, GtkTreeIter *iter) { + g_assert (completion->entry != NULL); + gtk_entry_completion_insert_completion (completion, model, iter); return TRUE; @@ -1317,6 +1321,8 @@ static gboolean gtk_entry_completion_real_insert_prefix (GtkEntryCompletion *completion, const char *prefix) { + g_assert (completion->entry != NULL); + if (prefix) { int key_len; @@ -1417,6 +1423,8 @@ gtk_entry_completion_insert_completion (GtkEntryCompletion *completion, void gtk_entry_completion_insert_prefix (GtkEntryCompletion *completion) { + g_return_if_fail (completion->entry != NULL); + gboolean done; char *prefix; GtkText *text = gtk_entry_get_text_widget (GTK_ENTRY (completion->entry)); -- 2.30.2